import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import Http from './action/request'
import {MessageBox}  from "element-ui";
// 引入样式
import '@/assets/css/global.css'
import '@/assets/css/common.scss'
import '@/assets/css/iconfont.css'
import '@/assets/css/element.scss'

// 全局设置element的初始大小
Vue.use(ElementUI,{size: 'small'})
Vue.config.productionTip = false;
// 引用axios封装的方法 http
Vue.prototype.$Http = Http;
// 全局引用vuex
Vue.prototype.$store = store;
// 引用qs
import qs from 'qs'
Vue.prototype.$qs = qs

// 路由守卫
router.beforeEach((to , from , next ) => {
  //进入登录页 没有限制
  if(to.path === '/login'){
    next();
    return
  }
  // 当需要登录检验的页面时
  if(!to.meta.auth){
    // 请求登录状态
    Http.loginState().then(res =>{
      if (res.code === 'SUCCESS'){
        // 如果为登陆状态执行预进入的路由
        next()
      }else {
        // 否则 弹窗提示进入登录页
        MessageBox.alert('您还未登录哦！', {
          showClose: false,
          type: 'warning',
          center: true,
          callback: () => {
            router.push({
              path: '/'
            })
          }
        })
      }
    })
  }else {
    next()
  }
  next()
})

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
